In networked computing environments, the client-server architecture is widely used. In such environments, a server is capable of providing certain functionality, and processing data that is related to its functionality. The server is also capable of processing requests from a client. The client may function within a particular context, and send requests to the server to provide a certain functionality within that context. The server then is able to provide responses to the client to complete the interchange.
Over time, clients and servers both have evolved. Clients using the Internet often implement web browsers to accept input from a user, and to display results to the user. Servers are also often connected to the Internet, and provide various types of interfaces to communicate with clients. In additions, servers may be part of larger server systems, wherein each server has a designated functionality within the distributed server environment.
The use of the Internet has rapidly increased, and so has e-commerce. More and more individuals are using the Internet to conduct business, and to participate in transactions in which a great deal of information is exchanged. Sales people are now able to communicate with potential clients using the Internet, and customer service agents are also able to assist customers online. As e-businesses on the Internet have evolved, the need for customer interaction using the web has increased dramatically. Often, customers may be located in various parts of the world, and companies continually find a need for better and more efficient means of interaction with their customers.
To implement e-business functionality over the web, certain systems have implemented a client-server architecture to process transactions. Clients using web browsers have interacted with web servers to obtain needed functionality. Users of the client devices may be, for example, customer care agents who wish to interact with customers online. For a given transaction or user context, the client requests information and/or functionality from the web server for the given user context. The web server may create and process session information specific for the user context, and send a response back to the client. The web server may also store state information relating to the session, so that it may quickly and accurately exchange information with the client for the given user context over time.
Many server architectures today, however, are distributed in nature. That is, a server system may include two or more independent servers each providing their own functionality within the system. The distributed server system is very powerful, because it can provide a wide assortment of functionalities to clients using the system, and can provide load balancing. The distributed system, however, also poses difficulties when used by clients during e-business transactions. For a given transaction, a client may send a request to a server system for processing. Such a request may need to be processed by two or more independent servers within the system. For example, a first server may need to store session (or state) information in its database relating to the transaction, and a second server may also need to store session information in its database relating to the transaction. In the past, such server systems have provided a distributed architecture in which independent servers are able to store independent session information relating to a particular transaction. This poses a problem for clients who need to interact with each of the servers in the server system for a given transaction. Because independent servers on the system maintain independent session information for a transaction on a given client, the client will often need to manage the interaction between itself and each of the independent servers. This creates a substantial amount of overhead for the client. In addition, the client may need to maintain a separate connection to each of the servers in the system.